"""
学生信息管理系统v1.0
"""


# 创建学生类
class Student:
    # 编写构造函数
    def __init__(self, student_id, name, age):
        self.student_id = student_id
        self.name = name
        self.age = age
        print(f"创建了{self.name},学号是{self.student_id},年龄是{self.age}")


# 编写学生管理器类（微信通讯录）
class StudentManager:
    # 构造函数
    def __init__(self):
        # 编写一个属性students,初始化为空列表
        self.students = []
        print("学生管理器初始化成功")

    # 编写一个add_student()的函数，传入student
    def add_student(self, student):
        self.students.append(student)  # 将student添加到列表
        print(f"添加学生{student.name}")

    # 编写一个查看学生列表的方法，view_student()
    def view_student(self):
        for student in self.students:
            print(f"学号：{student.student_id}, 姓名：{student.name}, 年龄：{student.age}")

    # 编写一个搜索学生的方法，search_student()
    def search_student(self, message):
        for student in self.students:
            if message in student.student_id or message in student.name:   # 模糊匹配
                print(f"学号：{student.student_id}, 姓名：{student.name}, 年龄：{student.age}")

    # 编写一个删除学生的方法，delete_student()
    def delete_student(self, message):
        for student in self.students:
            if message in student.student_id or message in student.name:
                self.students.remove(student)
                print(f"删除学生{student.name}")

# 菜单函数
def display_menu():
    """
    显示菜单，接收用户输入并返回。
    :return:
    """
    print("=" * 30)
    print("学生信息管理系统")
    print("=" * 30)
    # 编写菜单
    print("功能菜单：1-添加学生 2-查询学生 3-查看列表 4-删除学生 5-退出")
    # 使用input()接收用户的输入，并提示用户“请输入指令：”
    choice = input("请输入指令：")
    print(f"用户输入了{choice}")
    # 返回用户的输入 return
    return choice


# TODO 在这里编写main()函数
def main():  # 定义
    # 添加一个学生管理器manager
    manager = StudentManager()
    while True:  # while 循环条件：
        # 调用菜单display_menu()函数
        option = display_menu()
        print(f"接收到菜单的返回值:{option}")
        # 通过if语句判断option进行打印
        if option == "1":
            print("执行添加学生")
            # TODO 添加学生代码
            student_id = input("请输入学号：")
            name = input("请输入姓名：")
            age = input("请输入年龄：")
            student = Student(student_id, name, age)
            # 将学生添加至学生管理器
            manager.add_student(student)
        elif option == "2":
            print("执行查询学生")
            message = input("请输入学号或姓名：")
            manager.search_student(message)
        elif option == "3":
            print("执行查看列表")
            manager.view_student()
        elif option == "4":
            print("执行删除学生")
            message = input("请输入学生姓名或学号：")
            manager.delete_student(message)
        elif option == "5":
            print("执行退出")
            break
        else:
            print("不要乱输入！！！")


# TODO 调用mian()函数
result = main()  # 调用
print(result)
